Personal computers with color displays are becoming increasingly common in the workplace and home today. The increasing use of color displays and other color hardware, such as printers, is associated with the increasing use of, and provision for, color in software, such as operating systems, graphical user interfaces, and applications. Providing the user with the ability to specify colors is highly desirable, if not absolutely necessary.
For example, the most widely used operating systems or user interface systems today are based on the windows and desktop concepts such as the IBM Operating System/2 (OS/2), Macintosh OS, Microsoft Windows, and X/Motif. In such window systems, it is desirable for users to be able to customize the color of various window parts, such as the border, background, title bar, title bar text, etc., to suit their individual preferences.
In any application that displays text, such as a word processing, desktop publishing application or a browser, it is desirable to use color to highlight certain words or to clarify structure, such as hypertext links, items in outlines, or keywords in programming code. It would be desirable for the user to be able to specify what colors to use in highlighting the text, or in the color-coding scheme.
In applications where color is an integral element, such as in a graphics, image editing application, or in a data visualization application, it is clearly necessary for the user to be able to specify colors. A typical approach to allowing the user to select a color is to display a set of fixed color samples and a set of custom color samples in a dialog window. By "custom" we mean customizable, user-definable, or user-editable, as distinguished from "fixed" colors whose definition cannot be changed by the user, either easily or at all. For the purpose of this application, these terms will be considered synonymous: color selection dialog, color selection dialog window, color selector, and color palette. A color sample will be also referred to as a color "chip."
Two forms of color selection dialog are usually available. The first form will be referred to as a Persistent Color Selector. In this form, the dialog window is relatively long-lived. It remains visible and available for interaction until the user explicitly dismisses it, such as by clicking on a Cancel button. The second form will be referred to as a Quick Color Selector. In this form, the dialog window is relatively short-lived. It disappears immediately after a color sample is selected. For the purpose of this application, the essential distinction between the two forms has to do with whether clicking on (or otherwise activating) a color sample causes the dialog to disappear. In the Persistent form, clicking on a color sample does not dismiss the dialog. An explicit user action is required to dismiss the dialog. In the Quick form, clicking on a color sample dismisses the dialog and effects the color selection. The Quick form is usually more compact. In typical usage, it is seen for only a short time as compared with the Persistent form, which stays up on the screen as the user does various tasks.
Another difference is, that the Persistent Color Selector will usually provide a way for the user to edit the set of custom colors, while the Quick form will not. Both forms will show the fixed and custom color chips, but only the Persistent form will enable the custom colors to be edited. For example, the Persistent Color Selector may show an Edit Custom Colors (or similarly named) button. Activating this button either expands the dialog window to include an interface for editing the custom colors, or makes a separate dialog window appear, containing the color editing interface.
An interface for defining or editing custom colors is referred to as a Color Editor. It may appear as a separate window or as an expansion of a color selection dialog window. It typically contains controls which allow the user to define a custom color according to one or more color specification models, such as the RGB (red-green-blue), CMY (cyan-magenta-yellow), HSB (hue-saturation-brightness), or HSL (hue-saturation-luminosity) models. For example, in the RGB model, a color is defined by specifying its composition in terms of three primary colors--red, green, and blue.
As stated above, the Persistent Color Selector usually provides a way to invoke the Color Editor, but the Quick Color Selector does not. It is desirable for the Quick form to provide this functionality, but no solution is known in the prior art. This function is desirable because it gives the user more flexibility. It also results in more consistency between the Persistent and the Quick forms of color selection dialogs.
It is not enough to add an Edit Custom Colors button to the Quick Color Selector. Provisions are needed for allowing the user to specify which custom color chip is to be edited (the "target" chip, so called because it is the target of the Color Editor). The target chip cannot be specified by clicking on it because this action should, if the expected behavior of the Quick Color Selector is to be maintained, have the effect of finalizing the color selection and dismissing the dialog. Note that in the Persistent Color Selector, the target chip can be specified by clicking on it, because doing so neither finalizes the color selection nor dismisses the dialog.
It is therefore desirable to have a method and apparatus for specifying and customizing color selections on the Quick Color Selector on a personal computer desktop.